<?php

require_once 'ExtratorAbstrato.php';
require_once 'FiltroTags.php';

/**
 * @author tsalles
 * @copyright 2008
 */

class ExtratorLinks extends ExtratorAbstrato {
    
    public function ExtratorLinks() {
        $this->filtro = new FiltroTags("a", "href", "*");
    }
    
   /**
    * Realiza a filtragem tratando apenas os elementos XML_ELEMENT_NODE,
    * analisando o nome da tag, o atributo e o respectivo valor.
    */
    public function aplicaFiltro(DOMDocument $doc, 
                                 $conteudo, 
                                 $filtro) {
        $linksDescobertos = array();
        // TODO Alterar para utilizar os atributos do filtro definido !!
        $links = $doc->getElementsByTagName("a");
       
        foreach($links as $link) {  
            $href_obtido = $link->getAttribute("href");
             // Adiciona a url descoberta apenas se ela não estiver 
             // sido descoberta.
             if (!in_array($href_obtido, $linksDescobertos)) {
                   array_push($linksDescobertos, $href_obtido);
            }
        }
        return $linksDescobertos;
    }
}

?>